<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>晓风轻AJAX跨越完全讲解</title>
<script src="jquery-1.11.3.js"></script>
<link rel="stylesheet" type="text/css" href="jasmine-2.8.0/jasmine.css">

<script src="jasmine-2.8.0/jasmine.js"></script>
<script src="jasmine-2.8.0/jasmine-html.js"></script>
<script src="jasmine-2.8.0/boot.js"></script>
</head>
<body>

	<script>
		function get1() {
			$.getJSON("http://localhost:8080/test/get1").then(function(result) {
				console.log(result);
			});
		}

		// 每一个测试用例的超时时间
		jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000;

		// 请求的接口的前缀 // http://localhost:8080/test
		var base = "/ajaxserverapache";

		//测试模块
		describe("晓风轻-ajax跨越完全讲解", function() {
			// 测试方法
			it("get1请求", function(done) {
				// 服务器返回的结果
				var result;

				$.getJSON(base + "/get1").then(function(jsonObj) {
					result = jsonObj;
				});

				// 由于是异步请求，需要使用setTimeout来校验
				setTimeout(function() {
					expect(result).toEqual({
						"data" : "get1 ok"
					});

					// 校验完成，通知jasmine框架
					done();
				}, 100);
			});
			
			// 测试方法
			it("jsonp请求", function(done) {
				// 服务器返回的结果
				var result;

				$.ajax({
					url: base +"/get1",
					dataType: "jsonp",
					jsonp: "callback2",
					cache:true,
					success: function(json){
						result = json;
					}
				});

				// 由于是异步请求，需要使用setTimeout来校验
				setTimeout(function() {
					expect(result).toEqual({
						"data" : "get1 ok"
					});

					// 校验完成，通知jasmine框架
					done();
				}, 100);
			});

			
			it("postJson请求", function(done) {
				// 服务器返回的结果
				var result;

				$.ajax({
					type : "post",
					url: base + "/postJson",
					contentType : "application/json;charset=utf-8",
					data: JSON.stringify({name: "xiaofengqing"}),
					success: function(json){
						result = json;
					}
				});

				// 由于是异步请求，需要使用setTimeout来校验
				setTimeout(function() {
					expect(result).toEqual({
						"data" : "postJson xiaofengqing"
					});

					// 校验完成，通知jasmine框架
					done();
				}, 100);
			});
			
			
			it("getCookie请求", function(done) {
				// 服务器返回的结果
				var result;

				$.ajax({
					type : "get",
					url: base + "/getCookie",
					xhrFields:{
						withCredentials:true
					},
					success: function(json){
						result = json;
					}
				});

				// 由于是异步请求，需要使用setTimeout来校验
				setTimeout(function() {
					expect(result).toEqual({
						"data" : "getCookie xiaofengqing"
					});

					// 校验完成，通知jasmine框架
					done();
				}, 100);
			});

			it("getHeader请求", function(done) {
				// 服务器返回的结果
				var result;

				$.ajax({
					type : "get",
					url: base + "/getHeader",
					headers:{
						"x-header1" : "AAA"
					},
					beforeSend: function(xhr){
						xhr.setRequestHeader("x-header2","BBB")
					},
					success: function(json){
						result = json;
					}
				});

				// 由于是异步请求，需要使用setTimeout来校验
				setTimeout(function() {
					expect(result).toEqual({
						"data" : "getHeader AAA BBB"
					});

					// 校验完成，通知jasmine框架
					done();
				}, 100);
			});
		
		});
	</script>

</body>
</html>